package com.sel.modelo;

import java.util.List;

import DAO.ReservaDAO;

import android.util.Log;

import com.sel.controle.Cadastro_equipamentos;
import com.sel.controle.Reserva_equipamento;

public class Reserva implements EntidadePersistivel
{
    private int    id;
    private int    idEquipamento;
    private int    idCampi;
    private int    idTerceiro;
    private String dataHoraInicalReserva;
    private String dataHoraFinalReserva;
    private int    usuarioResponsavel;
    private int    IdSala;
    private int    IdLaboratorio;
    
    public Reserva()
    {
        
    }

    /**
     * @return String
     */
    public int getIdEquipamento() 
    {
        return idEquipamento;
    }

    /**
     * @param nomeEquipamento
     */
    public void setIdEquipamento(int nomeEquipamento) 
    {
        this.idEquipamento = nomeEquipamento;
    }

    /**
     * @return integer
     */
    public int getIdCampi() 
    {
        return idCampi;
    }

    /**
     * @param idCampi
     */
    public void setIdCampi(int idCampi) 
    {
        this.idCampi = idCampi;
    }

    /**
     * @return integer
     */
    public int getIdTerceiro() 
    {
        return idTerceiro;
    }

    /**
     * @param idTerceiro
     */
    public void setIdTerceiro(int idTerceiro) 
    {
        this.idTerceiro = idTerceiro;
    }

    /**
     * @return String
     */
    public String getDataHoraInicalReserva() 
    {
        return dataHoraInicalReserva;
    }

    /**
     * @param horaInicalReserva
     */
    public void setDataHoraInicalReserva(String dataHoraInicalReserva) 
    {
        this.dataHoraInicalReserva = dataHoraInicalReserva;
    }

    /**
     * @return String
     */
    public String getDataHoraFinalReserva() 
    {
        return dataHoraFinalReserva;
    }

    /**
     * @param horaFinalReserva
     */
    public void setDataHoraFinalReserva(String dataHoraFinalReserva) 
    {
        this.dataHoraFinalReserva = dataHoraFinalReserva;
    }

    /**
     * @return integer
     */
    public int getUsuarioResponsavel() 
    {
        return usuarioResponsavel;
    }
    
    /**
     * @param usuarioResponsavel
     */
    public void setUsuarioResponsavel(int usuarioResponsavel) 
    {
        this.usuarioResponsavel = usuarioResponsavel;
    }
    
    @Override
    public int getId() 
    {
        return this.id;
    }

    @Override
    public void setId(int id) 
    {
        this.id = id;
    }
    

    /**
     * @return integer
     */
    public int getIdSala() 
    {
        return IdSala;
    }

    /**
     * @param idSala
     */
    public void setIdSala(int idSala) 
    {
        IdSala = idSala;
    }

    public int getIdLaboratorio() {
        return IdLaboratorio;
    }

    public void setIdLaboratorio(int idLaboratorio) {
        IdLaboratorio = idLaboratorio;
    }

    @Override
    public String toString() 
    {
        Equipamento equipamento = new Equipamento();
        Laboratorio laboratorio = new Laboratorio();
        String  nomeItemReserva = "";
        if (this.idEquipamento != 0)
        {
            nomeItemReserva = ""+equipamento.listaNomeEquipamentoPorId(this.idEquipamento, Reserva_equipamento.reserva_equipamento);
            
        }
        else if (this.IdLaboratorio != 0)
        {
            int numLab = laboratorio.listaNumeroLaboratorioPorId(this.IdLaboratorio, Reserva_equipamento.reserva_equipamento);
            if (numLab > 0)
            {
                nomeItemReserva ="Laboratorio: " + laboratorio.listaNumeroLaboratorioPorId(this.IdLaboratorio, Reserva_equipamento.reserva_equipamento);
            }
        }
        return nomeItemReserva;
    }

    public List<Reserva> validaReservaPorPeriodo(String dataHoraInicial, String dataHoraFinal, int itemReserva, int tipo) 
    {
        ReservaDAO reservaDAO = new ReservaDAO(Reserva_equipamento.reserva_equipamento);
        List<Reserva> resposta = reservaDAO.validaIntervaloReserva(dataHoraInicial, dataHoraFinal, itemReserva, tipo);
        return resposta;
    }

    public List<Reserva> validaReservaPorItemUsuario(String dataHoraInicial, String dataHoraFinal)
    {
        ReservaDAO reservaDAO = new ReservaDAO(Reserva_equipamento.reserva_equipamento);
        List<Reserva> resposta = reservaDAO.validaReservaEquipamentoPorUsuario(dataHoraInicial, dataHoraFinal);
        return resposta;
    }
}
